package com.zzh.partnersys.common.enums;

import lombok.Getter;

/**
 * 消息类型（1-文本，2-图片，3-文件，4-语音，5-表情包）
 * @author zzh
 */
@Getter
public enum MessageTypeEnum {

    /**
     * 文本
     */
    TEXT(1, "文本"),

    /**
     * 图片
     */
    IMAGE(2, "图片"),
    /**
     * 文件
     */
    FILE(3, "文件"),
    /**
     * 语音
     */
    AUDIO(4, "语音"),
    /**
     * 表情包
     */
    EMOJI(5, "表情包");

    private final int code;
    private final String desc;

    MessageTypeEnum(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 根据code获取描述
     *
     * @param code 类型代码
     * @return 描述信息
     */
    public static String getDescByCode(int code) {
        for (MessageTypeEnum value : MessageTypeEnum.values()) {
            if (value.code == code) {
                return value.desc;
            }
        }
        return null;
    }

    /**
     * 根据code获取枚举
     *
     * @param code 类型代码
     * @return 枚举值，如果不存在返回null
     */
    public static MessageTypeEnum getByCode(int code) {
        for (MessageTypeEnum value : MessageTypeEnum.values()) {
            if (value.code == code) {
                return value;
            }
        }
        return null;
    }

    /**
     * 根据描述获取code
     *
     * @param desc 描述信息
     * @return 类型代码，如果不存在返回-1
     */
    public static int getCodeByDesc(String desc) {
        for (MessageTypeEnum value : MessageTypeEnum.values()) {
            if (value.desc.equals(desc)) {
                return value.code;
            }
        }
        return -1;
    }
}

